/******************************************************************************
* 文件名称: shell.h
* 内容摘要: shell 头文件
* 创建者の: 孔佳伟
* 个人主页: https://gitee.com/openes
* 修改记录: 
******************************************************************************/

#ifndef __SHELL_H_
#define __SHELL_H_

#ifdef __cplusplus
extern "C" {
#endif

#include <common.h>
#include <list.h>


extern U08 ShellStack[256];     // shell 任务私有栈

typedef void (*CmdFunc)();

typedef struct SHELL_CMD
{
    LIST_NODE   node;
    U08*        cmd;
    CmdFunc     func;         
} SHELL_CMD;

/******************************************************************************
* 函数名称: E_RET CmdRegister(const U08* cmd, CmdFunc func)
* 功能说明: 命令注册
* 输入参数: const U08*  cmd	    --命令 
    　　　　CmdFunc     func    --命令对应的执行函数
* 输出参数: 无
* 函数返回: E_OK:成功; E_ERR:失败
* 其它说明: 无
******************************************************************************/
E_RET CmdRegister(const U08* cmd, CmdFunc func);

/******************************************************************************
* 函数名称: void ShellTask(void)
* 功能说明: shell 任务
* 输入参数: 无
* 输出参数: 无
* 函数返回: 无
* 其它说明: 
******************************************************************************/
void ShellTask(void);


#ifdef __cplusplus
}
#endif

#endif

